find_free_response_properties Subroutine

public subroutine find_free_response_properties(t, x, delta, fn, x1, x2, t1, t2, s, n)

Given a free-response time history, this routine attempts to find the logarithmic decrement and resonant frequency of a vibratory system. The logarithmic decrement is estimated by finding successive peaks by means of peak detection.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in), dimension(:) :: t

An N-element array containing the values in time

real(kind=real64), intent(in), dimension(:) :: x

An N-element array containing the response sampled at the time points given in t.

real(kind=real64), intent(out) :: delta

The logarithmic decrement estimate. If sufficient peaks cannot be located, the routine returns NaN.

real(kind=real64), intent(out) :: fn

The damped resonant frequency in units of Hz, assuming that the time values are in seconds. If the time units are not in seconds, the units will be cycle/unit time with unit time being the units in which t is supplied. If sufficient peaks cannot be located, the routine returns NaN.

real(kind=real64), intent(out), optional :: x1

An optional parameter that, if provided, allows for the routine to return the amplitude of the first peak. If sufficient peaks cannot be located, the routine returns NaN.

real(kind=real64), intent(out), optional :: x2

An optional parameter that, if provided, allows for the routine to return the amplitude of the second peak. If sufficient peaks cannot be located, the routine returns NaN.

real(kind=real64), intent(out), optional :: t1

An optional parameter that, if provided, allows for the routine to return the time at which the first peak was located. If sufficient peaks cannot be located, the routine returns NaN.

real(kind=real64), intent(out), optional :: t2

An optional parameter that, if provided, allows for the routine to return the time at which the second peak was located. If sufficient peaks cannot be located, the routine returns NaN.

real(kind=real64), intent(in), optional :: s

An optional input that, if provided, allows for control of the sensitivity of the peak detection algorithm. The default is 0.1% of the peak-peak amplitude of the signal.

integer(kind=int32), intent(in), optional :: n

An optional input that, if provided, determines the number of periods to allow between peak selection for the logarithmic decrement calculation. The default is 1.


Contents